#pragma once

#include <string>
#include <functional>

class MenuHandler
{
public:
    // 显示登录界面，获取用户名和密码
    void showLoginMenu(std::string &username, std::string &password);

    // 根据用户身份显示不同功能菜单
    void showMainMenu(const std::string &role, const std::vector<std::function<void()>> &options);

    // 权限不足时的友提示
    void showPermissionDeniedMessage();

    // 显示系统消息
    void showMessage(const std::string &message);

private:
    // 清屏函数（平台相关）
    void clearScreen();
};

/*
showLoginMenu：显示登录界面，提示用户输入用户名和密码，通过引用参数返回用户输入的用户名和密码。
showMainMenu：根据用户身份显示不同的功能菜单，接收用户角色和菜单选项列表作为参数，每个菜单选项是一个可调用的函数对象。
showPermissionDeniedMessage：显示权限不足的提示信息，提醒用户当前操作需要更高权限。
showMessage：显示通用的系统消息或提示信息，接收消息字符串作为参数。
clearScreen：清屏函数，用于在显示菜单前清理屏幕，提高用户体验。
*/